/**
 * 文档配置
 */
function sSetting(){
    /**
     * 显示行号
     */
    this.lineNumberDisplay = false;

    /**
     * 显示元素边框
     */
    this.elementBorderDisplay = false;

    /**
     * 显示页内行边框
     */
    this.rowBorderDisplay = false;

    /**
     * 显示页面边框
     */
    this.pageBorderDisplay = false;

    /**
     * 显示表格行边界线
     */
    this.tableRowBorderDisplay = false;

    /**
     * 显示段落序号
     */
    this.paragraphIndexDisplay = false;

    /**
     * 是否显示段落符号
     */
    this.paragraphElementDisplay = true;

    /**
     * 显示空白文本
     */
    this.emptyTextDisplay = false;

    /**
     * 单元格网格线
     */
    this.cellGridDisplay = false;

    /**
     * 动作记录最大数
     */
    this.actionMaxSize = 1000;
    
    /**
     * 文档默认为设计模式
     */
    this.docMode = ssDict.sDocMode.DESIGN;

    /**
     * 批注配置信息
     */
    this.annotation = {
        /**
         * 是否显示批注
         */
        display: false,
        /**
         * 批注区域宽度
         */
        width: 230,
        /**
         * 警告类型
         */
        warning: {
            normal: {
                backgroundColor: "#fdf6ec",
                borderColor: "#faecd8"
            },
            focus: {
                backgroundColor: "#fdf6ec",
                borderColor: "#E6A23C"
            }
        },
        /**
         * 危险类型
         */
        danger: {
            normal: {
                backgroundColor: "#fef0f0",
                borderColor: "#fde2e2"
            },
            focus: {
                backgroundColor: "#fef0f0",
                borderColor: "#F56C6C"
            }
        },
        /**
         * 提示类型
         */
        info: {
            normal: {
                backgroundColor: "#f0f9eb",
                borderColor: "#e1f3d8"
            },
            focus: {
                backgroundColor: "#f0f9eb",
                borderColor: "#67C23A"
            }
        }
    };

    /**
     * 定义leaveTrace
     */
    Object.defineProperty(this, "leaveTrace", { 
        /**
         * 开启留痕
         * @returns boolean
         */
        get: function(){
            return this.__leaveTrace !== undefined 
                ? this.__leaveTrace 
                : false;
        },
        /**
         * 开启留痕
         * @param {*} val boolean
         */
        set: function(val){
            this.__leaveTrace = val;
            if(val){
                //留痕模式开启，如果之前设置过显示留痕，则将中间状态转为正式状态
                if(this.__traceDisplay__){
                    this.__traceDisplay = this.__traceDisplay__;
                    delete this.__traceDisplay__;
                }
            }else{
                //留痕模式关闭后， 将原始显示留痕状态暂存入中间状态
                this.__traceDisplay__ = this.__traceDisplay;
                this.__traceDisplay = false;
            }
        },
        enumerable: true
    });
    
    /**
     * 定义显示留痕
     */
    Object.defineProperty(this, "traceDisplay", { 
        /**
         * 显示留痕
         * @returns boolean
         */
        get: function(){
            return this.__traceDisplay !== undefined 
                ? this.__traceDisplay
                : false;
        },
        /**
         * 显示留痕
         * @param {*} val boolean
         */
        set: function(val){
            //留痕未开启，则显示留痕不开启，暂存这个状态
            if(!this.__leaveTrace) {
                this.__traceDisplay__ = val;
            }else {
                this.__traceDisplay = val;
                delete this.__traceDisplay__;
            }
        },
        enumerable: true
    });

    /**
     * 多页数量
     */
    this.multiplePageNum = 1;

    /**
     * 多页间隔宽度
     */
    this.multipleSplitWidth = 15;
}